【レポート】 「タクティクスオウガ リボーン」のAI実装事例 #CEDEC2023 #classmethod_game
こんにちは。ゲームソリューション部の出村です。
ここではCEDEC 2023で講演された「「タクティクスオウガ リボーン」のAI実装事例」について重要と思った解説を中心にまとめてみました。
セッションの概要
「タクティクスオウガ リボーン」はターン制のシミュレーションゲームです。一つのユニットの行動を決定する際にはAIが、数千、数万の選択肢の中から一つの行動(移動先+アクション)を選ぶ必要があります。本作のAIは、ルールベースとシミュレーションベースの意思決定を組み合わせた上で、前作「タクティクスオウガ 運命の輪」から大幅に改善した位置評価機能によって支えられています。このセッションでは、今作で採用したAI技術を実例を交えながら解説します。
内容について
今回のセッションの発表について、印象深いところを中心に取り上げてみました。
タクティクスオーガ リボーンの詳細は、タクティクスオウガ リボーン | SQUARE ENIXをご覧下さい。
AIの概要
「タクティクスオウガ リボーン」は前作のPSP版の基本仕組みを継承し、1ターン分のユニットの行動を決定するメカニズムとなっています。
AIの出力
AIは「移動」、複数の「アクション」オプション(武器攻撃、魔法攻撃、アイテム使用)および「アクションスキル」といったコマンドを実行します。
AIの基本的な構成
AIの行動評価は以下の順序で進行します:まず「ガンビット」によるルールベースAIが特定の行動を定義(例:アリスとボブは互いに攻撃)します。次に、「シミュレーションベースAI」がコマンドの選択を行い、その後「アクションスキル決定」がルールベースで行動を定めます。各アクションには評価パラメータがあり、プランナーがこれに値を設定します。
シミュレーションベースAIの概要
1ターン内での各行動に点数が付けられ、その点数は「行動の評価値」「アクションの評価値」、そして「行動やアクションで消費されるものの評価値」を合算したものです。消費物の評価値はマイナスとして考慮されます。最も評価値が高いものを行動として選択いたします。評価の仕方はこれらの評価値を合算することで決定されます。
移動評価
移動評価には2つの種類があります。「プラス評価」は、特定の位置に行きたいと評価される場合のことを指します。一方、「マイナス評価」は、特定の位置に行きたくないと評価される場合のことを意味します。
評価の分類には、「距離の評価」と「位置の評価」の2つがあります。「距離の評価」は、例えば敵と適切な距離を保つことで点数が高くなるようなケースを指します。一方で、「位置の評価」は、キャラクターが防護される特定の位置にいることで点数が上がる場合などを指し示します。
「位置の評価」には様々な種類がありますが、ここでは代表として「保護度マップ」を挙げられます。この保護度マップにより、守るべきキャラクターの近くにいる場合、評価点数が高くなるとされています。つまり、キャラクターの安全性や重要性を位置に基づいて評価する手法となります。
移動の評価点は、以下の方法で決定されます。各評価項目の点数とその項目に対する評価係数を掛け合わせた値を計算します。この演算は、すべての評価項目に対して実施されます。そして、これらの計算結果を合算することで、移動の最終的な評価点となります。
アクションの評価
移動後のアクションの実行は、以下の方法で評価されます。HPダメージなどの各効果に評価係数を掛け合わせます。そして、これらの効果に対する計算結果を合算し、その合計値をアクションの評価点として設定します。
演算例としては、次のようにおこなわれます。
行動のコストの評価
移動やアクションを実施した後、次の行動までに一定の時間が必要となります。この時間に特定の係数を掛けた値は、マイナス評価として考慮されます。さらに、MPの消費やアイテムの使用などもコストとして評価され、これらも評価点の計算に影響を与える要素として扱われます。
行動の決定
全ての行動の中から最も適切なものを選択する際、以下の方法で評価されます。まず、「位置の評価」と「アクションの評価」の合計値から、「アクションコスト」を減算します。この計算により得られた値を基に、全行動の中から最も評価点が高い行動を選択します。
まとめ
ルールベースAIとシミュレーションベースAIを組み合わせて構築されています。移動やアクションの中から最も高い評価点を持つものを行動として選択します。この評価の方法は、非常にシンプルなものとなっています。
雑感・まとめ
ガンビットといえばFF12で採用されたシステムの名前です(今回のゲームと関係あるかは不明ですが)。
こちらのセッションの内容では、昔ながらのシンプルな思考ルーチンですが、場合によっては十分役立つロジックなのだなと改めて感じた次第です。